home *** CD-ROM | disk | FTP | other *** search
/ Danny Amor's Online Library / Danny Amor's Online Library - Volume 1.iso / bbs / rfc / rfcxxxx_8.lha / rfc1717 < prev    next >
Text File  |  1995-07-26  |  46KB  |  1,180 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                         K. Sklower
  8. Request for Comments: 1717            University of California, Berkeley
  9. Category: Standards Track                                       B. Lloyd
  10.                                                              G. McGregor
  11.                                                    Lloyd Internetworking
  12.                                                                  D. Carr
  13.                                           Newbridge Networks Corporation
  14.                                                            November 1994
  15.  
  16.  
  17.                     The PPP Multilink Protocol (MP)
  18.  
  19. Status of This Memo
  20.  
  21.    This document specifies an Internet standards track protocol for the
  22.    Internet community, and requests discussion and suggestions for
  23.    improvements.  Please refer to the current edition of the "Internet
  24.    Official Protocol Standards" (STD 1) for the standardization state
  25.    and status of this protocol.  Distribution of this memo is unlimited.
  26.  
  27. Abstract
  28.  
  29.    This document proposes a method for splitting, recombining and
  30.    sequencing datagrams across multiple logical data links.  This work
  31.    was originally motivated by the desire to exploit multiple bearer
  32.    channels in ISDN, but is equally applicable to any situation in which
  33.    multiple PPP links connect two systems, including async links.  This
  34.    is accomplished by means of new PPP [2] options and protocols.
  35.  
  36. Acknowledgements
  37.  
  38.    The authors specifically wish to thank Fred Baker of ACC, Craig Fox
  39.    of Network Systems, Gerry Meyer of Spider Systems, Tom Coradetti of
  40.    Digiboard (for the Endpoint Discriminator option), Dan Brennan of
  41.    Penril Datability Networks, Vernon Schryver of SGI (for the
  42.    comprehensive discussion of padding), and the members of the IP over
  43.    Large Public Data Networks and PPP Extensions working groups, for
  44.    much useful discussion on the subject.
  45.  
  46. Table of Contents
  47.  
  48.    1. Introduction ................................................    2
  49.    1.1. Motivation ................................................    2
  50.    1.2. Functional Description ....................................    3
  51.    1.3. Conventions ...............................................    3
  52.    2. General Overview ............................................    4
  53.    3. Packet Formats ..............................................    6
  54.    3.1. Padding Considerations ....................................    9
  55.  
  56.  
  57.  
  58. Sklower, Lloyd, McGregor & Carr                                 [Page 1]
  59.  
  60. RFC 1717                     PPP Multilink                 November 1994
  61.  
  62.  
  63.    4. Trading Buffer Space Against Fragment Loss ..................    9
  64.    4.1. Detecting Fragment Loss ...................................   10
  65.    4.2. Buffer Space Requirements .................................   11
  66.    5. PPP Link Control Protocol Extensions ........................   12
  67.    5.1. Configuration Option Types ................................   12
  68.    5.1.1. Multilink MRRU LCP option ...............................   13
  69.    5.1.2. Short Sequence Number Header Format Option ..............   13
  70.    5.1.3. Endpoint Discriminator Option ...........................   14
  71.    6. Closing Member links ........................................   18
  72.    7. Interaction with Other Protocols ............................   19
  73.    8. Security Considerations .....................................   19
  74.    9. References ..................................................   20
  75.    10. Authors' Addresses .........................................   21
  76.  
  77. 1.  Introduction
  78.  
  79. 1.1.  Motivation
  80.  
  81.    Basic Rate and Primary Rate ISDN both offer the possibility of
  82.    opening multiple simultaneous channels between systems, giving users
  83.    additional bandwidth on demand (for additional cost).  Previous
  84.    proposals for the transmission of internet protocols over ISDN have
  85.    stated as a goal the ability to make use of this capability, (e.g.,
  86.    Leifer et al., [1]).
  87.  
  88.    There are proposals being advanced for providing synchronization
  89.    between multiple streams at the bit level (the BONDING proposals);
  90.    such features are not as yet widely deployed, and may require
  91.    additional hardware for end system.  Thus, it may be useful to have a
  92.    purely software solution, or at least an interim measure.
  93.  
  94.    There are other instances where bandwidth on demand can be exploited,
  95.    such as using a dialup async line at 28,800 baud to back up a leased
  96.    synchronous line, or opening additional X.25 SVCs where the window
  97.    size is limited to two by international agreement.
  98.  
  99.    The simplest possible algorithms of alternating packets between
  100.    channels on a space available basis (which might be called the Bank
  101.    Teller's algorithm) may have undesirable side effects due to
  102.    reordering of packets.
  103.  
  104.    By means of a four-byte sequencing header, and simple synchronization
  105.    rules, one can split packets among parallel virtual circuits between
  106.    systems in such a way that packets do not become reordered, or at
  107.    least the likelihood of this is greatly reduced.
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Sklower, Lloyd, McGregor & Carr                                 [Page 2]
  115.  
  116. RFC 1717                     PPP Multilink                 November 1994
  117.  
  118.  
  119. 1.2.  Functional Description
  120.  
  121.    The method discussed here is similar to the multilink protocol
  122.    described in ISO 7776 [4], but offers the additional ability to split
  123.    and recombine packets, thereby reducing latency, and potentially
  124.    increase the effective maximum receive unit (MRU).  Furthermore,
  125.    there is no requirement here for acknowledged-mode operation on the
  126.    link layer, although that is optionally permitted.
  127.  
  128.    Multilink is based on an LCP option negotiation that permits a system
  129.    to indicate to its peer that it is capable of combining multiple
  130.    physical links into a "bundle".  Only under exceptional conditions
  131.    would a given pair of systems require the operation of more than one
  132.    bundle connecting them.
  133.  
  134.    Multilink is negotiated during the initial LCP option negotiation.  A
  135.    system indicates to its peer that it is willing to do multilink by
  136.    sending the multilink option as part of the initial LCP option
  137.    negotiation.  This negotiation indicates three things:
  138.  
  139.    1.   The system offering the option is capable of combining
  140.         multiple physical links into one logical link;
  141.  
  142.    2.   The system is capable of receiving upper layer protocol data
  143.         units (PDU) fragmented using the multilink header (described
  144.         later) and reassembling the fragments back into the original
  145.         PDU for processing;
  146.  
  147.    3.   The system is capable of receiving PDUs of size N octets
  148.         where N is specified as part of the option even if N is larger
  149.         than the maximum receive unit (MRU) for a single physical
  150.         link.
  151.  
  152.    Once multilink has been successfully negotiated, the sending system
  153.    is free to send PDUs encapsulated and/or fragmented with the
  154.    multilink header.
  155.  
  156. 1.3.  Conventions
  157.  
  158.    The following language conventions are used in the items of
  159.    specification in this document:
  160.  
  161.    o    MUST, SHALL or MANDATORY -- the item is an absolute requirement
  162.         of the specification.
  163.  
  164.    o    SHOULD or RECOMMENDED -- the item should generally be followed
  165.         for all but exceptional circumstances.
  166.  
  167.  
  168.  
  169.  
  170. Sklower, Lloyd, McGregor & Carr                                 [Page 3]
  171.  
  172. RFC 1717                     PPP Multilink                 November 1994
  173.  
  174.  
  175.    o    MAY or OPTIONAL -- the item is truly optional and may be
  176.         followed or ignored according to the needs of the implementor.
  177.  
  178. 2.  General Overview
  179.  
  180.    In order to establish communications over a point-to-point link, each
  181.    end of the PPP link must first send LCP packets to configure the data
  182.    link during Link Establishment phase.  After the link has been
  183.    established, PPP provides for an Authentication phase in which the
  184.    authentication protocols can be used to determine identifiers
  185.    associated with each system connected by the link.
  186.  
  187.    The goal of multilink operation is to coordinate multiple independent
  188.    links between a fixed pair of systems, providing a virtual link with
  189.    greater bandwidth than any of the constituent members.  The aggregate
  190.    link, or bundle, is named by the pair of identifiers for two systems
  191.    connected by the multiple links.  A system identifier may include
  192.    information provided by PPP Authentication [3] and information
  193.    provided by LCP negotiation.  The bundled links can be different
  194.    physical links, as in multiple async lines, but may also be instances
  195.    of multiplexed links, such as ISDN, X.25 or Frame Relay.  The links
  196.    may also be of different kinds, such as pairing dialup async links
  197.    with leased synchronous links.
  198.  
  199.    We suggest that multilink operation can be modeled as a virtual PPP
  200.    link-layer entity wherein packets received over different physical
  201.    link-layer entities are identified as belonging to a separate PPP
  202.    network protocol (the Multilink Protocol, or MP) and recombined and
  203.    sequenced according to information present in a multilink
  204.    fragmentation header.  All packets received over links identified as
  205.    belonging to the multilink arrangement are presented to the same
  206.    network-layer protocol processing machine, whether they have
  207.    multilink headers or not.
  208.  
  209.    The packets to be transmitted using the multilink procedure are
  210.    encapsulated according to the rules for PPP where the following
  211.    options would have been manually configured:
  212.  
  213.         o  No async control character Map
  214.         o  No Magic Number
  215.         o  No Link Quality Monitoring
  216.         o  Address and Control Field Compression
  217.         o  Protocol Field Compression
  218.         o  No Compound Frames
  219.         o  No Self-Describing-Padding
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226. Sklower, Lloyd, McGregor & Carr                                 [Page 4]
  227.  
  228. RFC 1717                     PPP Multilink                 November 1994
  229.  
  230.  
  231.    Of course, individual links are permitted to have different settings
  232.    for these options.  As described below, member links SHOULD negotiate
  233.    Self-Describing-Padding, even though pre-fragmented packets MUST NOT
  234.    be padded.
  235.  
  236.    LCP negotiations are not permitted on the bundle itself.  An
  237.    implementation MUST NOT transmit LCP Configure-Request, -Reject,
  238.    -Ack, -Nak, Terminate-Request or -Ack packets via the multilink
  239.    procedure, and an implementation receiving them MUST silently discard
  240.    them.  (By "silently discard" we mean to not generate any PPP packets
  241.    in response; an implementation is free to generate a log entry
  242.    registering the reception of the unexpected packet).  By contrast,
  243.    other LCP packets having control functions not associated with
  244.    changing the defaults for the bundle itself are permitted.  An
  245.    implementation MAY transmit LCP Code-Reject, Protocol-Reject, Echo-
  246.    Request, Echo-Reply and Discard-Request Packets.
  247.  
  248.    The effective MRU for the logical-link entity is negotiated via an
  249.    LCP option.  It is irrelevant whether Network Control Protocol
  250.    packets are encapsulated in multilink headers or not, or even over
  251.    which link they are sent, once that link identifies itself as
  252.    belonging to a multilink arrangement.
  253.  
  254.    Note that network protocols that are not sent using multilink headers
  255.    cannot be sequenced.  (And consequently will be delivered in any
  256.    convenient way).
  257.  
  258.    For example, consider the case in Figure 1.  Link 1 has negotiated
  259.    network layers NL 1, NL 2, and MP between two systems.  The two
  260.    systems then negotiate MP over Link 2.
  261.  
  262.    Frames received on link 1 are demultiplexed at the data link layer
  263.    according the PPP network protocol identifier and can be sent to NL
  264.    1, NL 2, or MP.  Link 2 will accept frames with all network protocol
  265.    identifiers that Link 1 does.
  266.  
  267.    Frames received by MP are further demultiplexed at the network layer
  268.    according to the PPP network protocol identifier and sent to NL 1 or
  269.    NL 2.  Any frames received by MP for any other network layer
  270.    protocols are rejected using the normal protocol reject mechanism.
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Sklower, Lloyd, McGregor & Carr                                 [Page 5]
  283.  
  284. RFC 1717                     PPP Multilink                 November 1994
  285.  
  286.  
  287.                       Figure 1.  Multilink Overview.
  288.  
  289.      Network Layer
  290.      -------------
  291.                     ______           ______
  292.                    /      \         /      \
  293.                   |  NL 1  |       |  NL 2  |
  294.                    \______/         \______/
  295.                      | | |             | | |
  296.                      | | +-------------o-o-o-+
  297.                      | +------+  +-----+ | | |
  298.                      |        |  |       | | |
  299.                      | +------o--o-------+ + |
  300.                      | |      |__|_        | |
  301.                      | |     /      \      | |
  302.                      | |    |  MLCP  | <--- Link Layer
  303.                      | |     \______/    Demultiplexing
  304.                      | |        |          | |
  305.                      | |        |          | |
  306.                      | |        | <--- Virtual Link
  307.                      | |        |          | |
  308.                      | |        |          | |
  309.                      | |        |          | |
  310.                      | |        +          | |
  311.                   ___|_|        |       ___|_|
  312.                  /      \       |      /      \
  313.                 |   LCP  |------+-----|  LCP   | <--- Link Layer
  314.                  \______/              \______/       Demultiplexing
  315.                     |                      |
  316.                     |                      |
  317.                   Link 1                 Link 2
  318.  
  319. 3.  Packet Formats
  320.  
  321.    In this section we describe the layout of individual fragments, which
  322.    are the "packets" in the Multilink Protocol.  Network Protocol
  323.    packets are first encapsulated (but not framed) according to normal
  324.    PPP procedures, and large packets are broken up into multiple
  325.    segments sized appropriately for the multiple physical links.  A new
  326.    PPP header consisting of the Multilink Protocol Identifier, and the
  327.    Multilink header is inserted before each section.  (Thus the first
  328.    fragment of a multilink packet in PPP will have two headers, one for
  329.    the fragment, followed by the header for the packet itself).
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Sklower, Lloyd, McGregor & Carr                                 [Page 6]
  339.  
  340. RFC 1717                     PPP Multilink                 November 1994
  341.  
  342.  
  343.    Systems implementing the multilink procedure are not required to
  344.    fragment small packets.  There is also no requirement that the
  345.    segments be of equal sizes, or that packets must be broken up at all.
  346.    A possible strategy for contending with member links of differing
  347.    transmission rates would be to divide the packets into segments
  348.    proportion to the transmission rates.  Another strategy might be to
  349.    divide them into many equal fragments and distribute multiple
  350.    fragments per link, the numbers being proportional to the relative
  351.    speeds of the links.
  352.  
  353.    PPP multilink fragments are encapsulated using the protocol
  354.    identifier 0x00-0x3d.  Following the protocol identifier is a four
  355.    byte header containing a sequence number, and two one bit fields
  356.    indicating that the fragment begins a packet or terminates a packet.
  357.    After negotiation of an additional PPP LCP option, the four byte
  358.    header may be optionally replaced by a two byte header with only a 12
  359.    bit sequence space.  Address & Control and Protocol ID compression
  360.    are assumed to be in effect.  Individual fragments will, therefore,
  361.    have the following format:
  362.  
  363.              Figure 2:  Long Sequence Number Fragment Format.
  364.  
  365.  
  366.                 +---------------+---------------+
  367.    PPP Header:  | Address 0xff  | Control 0x03  |
  368.                 +---------------+---------------+
  369.                 | PID(H)  0x00  | PID(L)  0x3d  |
  370.                 +-+-+-+-+-+-+-+-+---------------+
  371.    MP Header:   |B|E|0|0|0|0|0|0|sequence number|
  372.                 +-+-+-+-+-+-+-+-+---------------+
  373.                 |      sequence number (L)      |
  374.                 +---------------+---------------+
  375.                 |        fragment data          |
  376.                 |               .               |
  377.                 |               .               |
  378.                 |               .               |
  379.                 +---------------+---------------+
  380.    PPP FCS:     |              FCS              |
  381.                 +---------------+---------------+
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Sklower, Lloyd, McGregor & Carr                                 [Page 7]
  395.  
  396. RFC 1717                     PPP Multilink                 November 1994
  397.  
  398.  
  399.              Figure 3:  Short Sequence Number Fragment Format.
  400.  
  401.  
  402.                 +---------------+---------------+
  403.    PPP Header:  | Address 0xff  | Control 0x03  |
  404.                 +---------------+---------------+
  405.                 | PID(H)  0x00  | PID(L)  0x3d  |
  406.                 +-+-+-+-+-------+---------------+
  407.    MP Header:   |B|E|0|0|    sequence number    |
  408.                 +-+-+-+-+-------+---------------+
  409.                 |    fragment data              |
  410.                 |               .               |
  411.                 |               .               |
  412.                 |               .               |
  413.                 +---------------+---------------+
  414.    PPP FCS:     |              FCS              |
  415.                 +---------------+---------------+
  416.  
  417.    The (B)eginning fragment bit is a one bit field set to 1 on the first
  418.    fragment derived from a PPP packet and set to 0 for all other
  419.    fragments from the same PPP packet.
  420.  
  421.    The (E)nding fragment bit is a one bit field set to 1 on the last
  422.    fragment and set to 0 for all other fragments.  A fragment may have
  423.    both the (B)eginning and (E)nding fragment bits set to 1.
  424.  
  425.    The sequence field is a 24 bit or 12 bit number that is incremented
  426.    for every fragment transmitted.  By default, the sequence field is 24
  427.    bits long, but can be negotiated to be only 12 bits with an LCP
  428.    configuration option described below.
  429.  
  430.    Between the (E)nding fragment bit and the sequence number is a
  431.    reserved field, whose use is not currently defined, which MUST be set
  432.    to zero.  It is 2 bits long when the use of short sequence numbers
  433.    has been negotiated, 6 bits otherwise.
  434.  
  435.    In this multilink protocol, a single reassembly structure is
  436.    associated with the bundle.  The multilink headers are interpreted in
  437.    the context of this structure.
  438.  
  439.    The FCS field shown in the diagram is inherited from the normal
  440.    framing mechanism from the member link on which the packet is
  441.    transmitted.  There is no separate FCS applied to the reconstituted
  442.    packet as a whole if transmitted in more than one fragment.
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Sklower, Lloyd, McGregor & Carr                                 [Page 8]
  451.  
  452. RFC 1717                     PPP Multilink                 November 1994
  453.  
  454.  
  455. 3.1.  Padding Considerations
  456.  
  457.    Systems that support the multilink protocol SHOULD implement Self-
  458.    Describing-Padding.  A system that implements self-describing-padding
  459.    by definition will either include the padding option in its initial
  460.    LCP Configure-Requests, or (to avoid the delay of a Configure-Reject)
  461.    include the padding option after receiving a NAK containing the
  462.    option.
  463.  
  464.    A system that must pad its own transmissions but does not use Self-
  465.    Describing-Padding when not using multilink, MAY continue to not use
  466.    Self-Describing-Padding if it ensures by careful choice of fragment
  467.    lengths that only (E)nding fragments of packets are padded.  A system
  468.    MUST NOT add padding to any packet that cannot be recognized as
  469.    padded by the peer.  Non-terminal fragments MUST NOT be padded with
  470.    trailing material by any other method than Self-Describing-Padding.
  471.  
  472.    A system MUST ensure that Self-Describing-Padding as described in RFC
  473.    1570 [11] is negotiated on the individual link before transmitting
  474.    any multilink data packets if it might pad non-terminal fragments or
  475.    if it would use network or compression protocols that are vulnerable
  476.    to padding, as described in RFC 1570.  If necessary, the system that
  477.    adds padding MUST use LCP Configure-NAK's to elicit a Configure-
  478.    Request for Self-Describing-Padding from the peer.
  479.  
  480.    Note that LCP Configure-Requests can be sent at any time on any link,
  481.    and that the peer will always respond with a Configure-Request of its
  482.    own.  A system that pads its transmissions but uses no protocols
  483.    other than multilink that are vulnerable to padding MAY delay
  484.    ensuring that the peer has Configure-Requested Self-Describing-
  485.    Padding until it seems desireable to negotiate the use of Multilink
  486.    itself.  This permits the interoperability of a system that pads with
  487.    older peers that support neither Multilink nor Self-Describing-
  488.    Padding.
  489.  
  490. 4.  Trading Buffer Space Against Fragment Loss
  491.  
  492.    In a multilink procedure one channel may be delayed with respect to
  493.    the other channels in the bundle.  This can lead to fragments being
  494.    received out of order, thus increasing the difficulty in detecting
  495.    the loss of a fragment.  The task of estimating the amount of space
  496.    required for buffering on the receiver becomes more complex because
  497.    of this.  In this section we discuss a technique for declaring that a
  498.    fragment is lost, with the intent of minimizing the buffer space
  499.    required, yet minimizing the number of avoidable packet losses.
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506. Sklower, Lloyd, McGregor & Carr                                 [Page 9]
  507.  
  508. RFC 1717                     PPP Multilink                 November 1994
  509.  
  510.  
  511. 4.1.  Detecting Fragment Loss
  512.  
  513.    On each member link in a bundle, the sender MUST transmit fragments
  514.    with strictly increasing sequence numbers (modulo the size of the
  515.    sequence space).  This requirement supports a strategy for the
  516.    receiver to detect lost fragments based on comparing sequence
  517.    numbers.  The sequence number is not reset upon each new PPP packet,
  518.    and a sequence number is consumed even for those fragments which
  519.    contain an entire PPP packet, i.e., one in which both the (B)eginning
  520.    and (E)nding bits are set.
  521.  
  522.    An implementation MUST set the sequence number of the first fragment
  523.    transmited on a newly-constructed bundle to zero.  (Joining a
  524.    secondary link to an exisiting bundle is invisible to the protocol,
  525.    and an implementation MUST NOT reset the sequence number space in
  526.    this situation).
  527.  
  528.    The receiver keeps track of the incoming sequence numbers on each
  529.    link in a bundle and maintains the current minimum of the most
  530.    recently received sequence number over all the member links in the
  531.    bundle (call this M).  The receiver detects the end of a packet when
  532.    it receives a fragment bearing the (E)nding bit.  Reassembly of the
  533.    packet is complete if all sequence numbers up to that fragment have
  534.    been received.
  535.  
  536.    A lost fragment is detected when M advances past the sequence number
  537.    of a fragment bearing an (E)nding bit of a packet which has not been
  538.    completely reassembled (i.e., not all the sequence numbers between
  539.    the fragment bearing the (B)eginning bit and the fragment bearing the
  540.    (E)nding bit have been received).  This is because of the increasing
  541.    sequence number rule over the bundle.
  542.  
  543.    An implementation MUST assume that if a fragment bears a (B)eginning
  544.    bit, that the previously numbered fragment bore an (E)nding bit.
  545.    Thus if a packet is lost bearing the (E)nding bit, and the packet
  546.    whose fragment number is M contains a (B)eginning bit, the
  547.    implementation MUST discard fragments for all unassembled packets
  548.    through M-1, but SHOULD NOT discard the fragment bearing the new
  549.    (B)eginning bit on this basis alone.
  550.  
  551.    The detection of a lost fragment causes the receiver to discard all
  552.    fragments up to M.  If the fragment with sequence number M has the
  553.    (B)eginning bit set then the receiver starts reassembling the new
  554.    packet, otherwise the receiver resynchronizes on the next fragment
  555.    bearing the (B)eginning bit.  All fragments received while the
  556.    receiver is attempting to resynchronize not bearing the (B)eginning
  557.    bit SHOULD be discarded.
  558.  
  559.  
  560.  
  561.  
  562. Sklower, Lloyd, McGregor & Carr                                [Page 10]
  563.  
  564. RFC 1717                     PPP Multilink                 November 1994
  565.  
  566.  
  567.    Fragments may be lost due to corruption of individual packets or
  568.    catastrophic loss of the link (which may occur only in one
  569.    direction).  This version of the multilink protocol mandates no
  570.    specific procedures for the detection of failed links.  The PPP link
  571.    quality management facility, or the periodic issuance of LCP echo-
  572.    requests could be used to achieve this.
  573.  
  574.    Senders SHOULD avoid keeping any member links idle to maximize early
  575.    detection of lost fragments by the receiver, since the value of M is
  576.    not incremented on idle links.  Senders SHOULD rotate traffic among
  577.    the member links if there isn't sufficient traffic to overflow the
  578.    capacity of one link to avoid idle links.
  579.  
  580.    Loss of the final fragment of a transmission can cause the receiver
  581.    to stall until new packets arrive.  The likelihood of this may be
  582.    decreased by sending a null fragment on each member link in a bundle
  583.    that would otherwise become idle immediately after having transmitted
  584.    a fragment bearing the (E)nding bit, where a null fragment is one
  585.    consisting only of a multilink header bearing both the (B)egin and
  586.    (E)nding bits (i.e., having no payload).  Implementations concerned
  587.    about either wasting bandwidth or per packet costs are not required
  588.    to send null fragments and may elect to defer sending them until a
  589.    timer expires, with the marginally increased possibility of lengthier
  590.    stalls in the receiver.  The receiver SHOULD implement some type of
  591.    link idle timer to guard against indefinite stalls.
  592.  
  593.    The increasing sequence per link rule prohibits the reallocation of
  594.    fragments queued up behind a failing link to a working one, a
  595.    practice which is not unusual for implementations of ISO multilink
  596.    over LAPB [4].
  597.  
  598. 4.2.  Buffer Space Requirements
  599.  
  600.    There is no amount of buffering that will guarantee correct detection
  601.    of fragment loss, since an adversarial peer may withhold a fragment
  602.    on one channel and send arbitrary amounts on the others.  For the
  603.    usual case where all channels are transmitting, you can show that
  604.    there is a minimum amount below which you could not correctly detect
  605.    packet loss.  The amount depends on the relative delay between the
  606.    channels, (D[channel-i,channel-j]), the data rate of each channel,
  607.    R[c], the maximum fragment size permitted on each channel, F[c], and
  608.    the total amount of buffering the transmitter has allocated amongst
  609.    the channels.
  610.  
  611.    When using PPP, the delay between channels could be estimated by
  612.    using LCP echo request and echo reply packets.  (In the case of links
  613.    of different transmission rates, the round trip times should be
  614.    adjusted to take this into account.)  The slippage for each channel
  615.  
  616.  
  617.  
  618. Sklower, Lloyd, McGregor & Carr                                [Page 11]
  619.  
  620. RFC 1717                     PPP Multilink                 November 1994
  621.  
  622.  
  623.    is defined as the bandwidth times the delay for that channel relative
  624.    to the channel with the longest delay, S[c] = R[c] * D[c,c-worst].
  625.    (S[c-worst] will be zero, of course!)
  626.  
  627.    A situation which would exacerbate sequence number skew would be one
  628.    in which there is extremely bursty traffic (almost allowing all
  629.    channels to drain), and then where the transmitter would first queue
  630.    up as many consecutively numbered packets on one link as it could,
  631.    then queue up the next batch on a second link, and so on.  Since
  632.    transmitters must be able to buffer at least a maximum- sized
  633.    fragment for each link (and will usually buffer up at least two) A
  634.    receiver that allocates any less than S[1] + S[2] + ... + S[N] + F[1]
  635.    + ... + F[N], will be at risk for incorrectly assuming packet loss,
  636.    and therefore, SHOULD allocate at least twice that.
  637.  
  638. 5.  PPP Link Control Protocol Extensions
  639.  
  640.    If reliable multilink operation is desired, PPP Reliable Transmission
  641.    [6] (essentially the use of ISO LAPB) MUST be negotiated prior to the
  642.    use of the Multilink Protocol on each member link.
  643.  
  644.    Whether or not reliable delivery is employed over member links, an
  645.    implementation MUST present a signal to the NCP's running over the
  646.    multilink arrangement that a loss has occurred.
  647.  
  648.    Compression may be used separately on each member link, or run over
  649.    the bundle (as a logical group link).  The use of multiple
  650.    compression streams under the bundle (i.e., on each link separately)
  651.    is indicated by running the Compression Control Protocol [5] but with
  652.    an alternative PPP protocol ID.
  653.  
  654. 5.1.  Configuration Option Types
  655.  
  656.    The Multilink Protocol introduces the use of additional LCP
  657.    Configuration Options:
  658.  
  659.         o  Multilink Maximum Received Reconstructed Unit
  660.         o  Multilink Short Sequence Number Header Format
  661.         o  Endpoint Discriminator
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674. Sklower, Lloyd, McGregor & Carr                                [Page 12]
  675.  
  676. RFC 1717                     PPP Multilink                 November 1994
  677.  
  678.  
  679. 5.1.1.  Multilink MRRU LCP option
  680.  
  681.                    Figure 4:  Multilink MRRU LCP option
  682.  
  683.     0                   1                   2                   3
  684.     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  685.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  686.    |   Type = 17   |   Length = 4  | Max-Receive-Reconstructed-Unit|
  687.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  688.  
  689.    The presence of this option indicates that the system sending it
  690.    implements the PPP Multilink Protocol, and unless rejected, will
  691.    construe all packets receive on this link as being able to be
  692.    processed by a common protocol machine with any other packets
  693.    received from the same peer on any other link on which this option
  694.    has been accepted.  A system MUST NOT accept the Multilink MRRU LCP
  695.    Option if it is not willing to symmetrically have the packets it
  696.    sends interpreted in the same fashion.
  697.  
  698.    This option also advises the peer that the implementation will be
  699.    able to reconstruct a PPP packet whose payload will contain the
  700.    number of bytes as Max-Receive-Reconstructed-Unit.
  701.  
  702.    A system MAY indicate the desire to conduct multilink operation
  703.    solely by use of the Multilink Short Sequence Number Header Format
  704.    LCP option (discussed next); the default value for MRRU option is
  705.    1600 bytes if not otherwise explicitly negotiated.
  706.  
  707.    Note: this option corresponds to what would have been the MRU of the
  708.    bundle when conceptualized as a PPP-like entity.
  709.  
  710. 5.1.2.  Short Sequence Number Header Format Option
  711.  
  712.            Figure 5:  Short Sequence Number Header Format Option
  713.  
  714.     0                   1
  715.     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
  716.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  717.    |   Type = 18   |  Length = 2   |
  718.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  719.  
  720.    This option advises the peer that the implementation wishes to
  721.    receive fragments with short, 12 bit sequence numbers.  By default
  722.    sequence, numbers are 24 bits long.  When this option is received, an
  723.    implementation MUST either transmit all subsequent multilink packets
  724.    on all links of the bundle with 12 bit sequence numbers or
  725.    configure-NAK or configure-Reject the option.
  726.  
  727.  
  728.  
  729.  
  730. Sklower, Lloyd, McGregor & Carr                                [Page 13]
  731.  
  732. RFC 1717                     PPP Multilink                 November 1994
  733.  
  734.  
  735.    An implementation wishing to transmit multilink fragments with short
  736.    sequence numbers MAY include the multilink short sequence number in a
  737.    configure-NAK to ask that the peer respond with a request to receive
  738.    short sequence numbers.  The peer is not compelled to respond with
  739.    the option.
  740.  
  741. 5.1.3.  Endpoint Discriminator Option
  742.  
  743.                  Figure 7:  Endpoint Discriminator Option
  744.  
  745.     0                   1                   2                   3
  746.     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  747.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  748.    |   Type = 19   |     Length    |    Class      |  Address ...
  749.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  750.  
  751.    The Endpoint Discriminator Option represents identification of the
  752.    system transmitting the packet.  This option advises a system that
  753.    the peer on this link could be the same as the peer on another
  754.    existing link.  If the option distinguishes this peer from all
  755.    others, a new bundle MUST be established from the link being
  756.    negotiated.  If this option matches the class and address of some
  757.    other peer of an existing link, the new link MUST be joined to the
  758.    bundle containing the link to the matching peer or MUST establish a
  759.    new bundle, depending on the decision tree shown in (1) through (4)
  760.    below.
  761.  
  762.    To securely join an existing bundle, a PPP authentication protocol
  763.    [3] must be used to obtain authenticated information from the peer to
  764.    prevent a hostile peer from joining an existing bundle by presenting
  765.    a falsified discriminator option.
  766.  
  767.    This option is not required for multilink operation.  If a system
  768.    does not receive either of the Multilink MRRU or Short Sequence
  769.    options, but does receive the Endpoint Discriminator Option, and
  770.    there is no manual configuration providing outside information, the
  771.    implementation MUST NOT assume that multilink operation is being
  772.    requested on this basis alone.
  773.  
  774.    As there is also no requirement for authentication, there are four
  775.    sets of scenarios:
  776.  
  777.    (1)  No authentication, no discriminator:
  778.         All new links MUST be joined to one bundle.
  779.  
  780.    (2)  Discriminator, no authentication:
  781.         Discriminator match -> MUST join matching bundle,
  782.         discriminator mismatch -> MUST establish new bundle.
  783.  
  784.  
  785.  
  786. Sklower, Lloyd, McGregor & Carr                                [Page 14]
  787.  
  788. RFC 1717                     PPP Multilink                 November 1994
  789.  
  790.  
  791.    (3)  No discriminator, authentication:
  792.         Authenticated match -> MUST join matching bundle,
  793.         authenticated mismatch -> MUST establish new bundle.
  794.  
  795.    (4)  Discriminator, authentication:
  796.         Discriminator match and authenticated match -> MUST join bundle,
  797.         discriminator mismatch -> MUST establish new bundle,
  798.         authenticated mismatch -> MUST establish new bundle.
  799.  
  800.    The option contains a Class which selects an identifier address space
  801.    and an Address which selects a unique identifier within the class
  802.    address space.
  803.  
  804.    This identifier is expected to refer to the mechanical equipment
  805.    associated with the transmitting system.  For some classes,
  806.    uniqueness of the identifier is global and is not bounded by the
  807.    scope of a particular administrative domain.  Within each class,
  808.    uniqueness of address values is controlled by a class dependent
  809.    policy for assigning values.
  810.  
  811.    Each endpoint may chose an identifier class without restriction.
  812.    Since the objective is to detect mismatches between endpoints
  813.    erroneously assumed to be alike, mismatch on class alone is
  814.    sufficient.  Although no one class is recommended, classes which have
  815.    universally unique values are preferred.
  816.  
  817.    This option is not required to be supported either by the system or
  818.    the peer.  If the option is not present in a Configure-Request, the
  819.    system MUST NOT generate a Configure-Nak of this option, instead it
  820.    SHOULD behave as if it had received the option with Class = 0,
  821.    Address = 0.  If a system receives a Configure-Nak or Configure-
  822.    Reject of this option, it MUST remove it from any additional
  823.    Configure-Request.
  824.  
  825.    The size is determined from the Length field of the element.  For
  826.    some classes, the length is fixed, for others the length is variable.
  827.    The option is invalid if the Length field indicates a size below the
  828.    minimum for the class.
  829.  
  830.    An implementation MAY use the Endpoint Discriminator to locate
  831.    administration or authentication records in a local database.  Such
  832.    use of this option is incidental to its purpose and is deprecated
  833.    when a PPP Authentication protocol [3] can be used instead.  Since
  834.    some classes permit the peer to generate random or locally assigned
  835.    address values, use of this option as a database key requires prior
  836.    agreement between peer administrators.
  837.  
  838.  
  839.  
  840.  
  841.  
  842. Sklower, Lloyd, McGregor & Carr                                [Page 15]
  843.  
  844. RFC 1717                     PPP Multilink                 November 1994
  845.  
  846.  
  847.    The specification of the subfields are:
  848.  
  849.    Type
  850.         19 = for Endpoint Discriminator
  851.  
  852.    Length
  853.         3 + length of Address
  854.  
  855.    Class
  856.         The Class field is one octet and indicates the identifier
  857.         address space.  The most up-to-date values of the LCP Endpoint
  858.         Discriminator Class field are specified in the most recent
  859.         "Assigned Numbers" RFC [7].  Current values are assigned as
  860.         follows:
  861.  
  862.         0    Null Class
  863.  
  864.         1    Locally Assigned Address
  865.  
  866.         2    Internet Protocol (IP) Address
  867.  
  868.         3    IEEE 802.1 Globally Assigned MAC Address
  869.  
  870.         4    PPP Magic-Number Block
  871.  
  872.         5    Public Switched Network Directory Number
  873.  
  874.    Address
  875.         The Address field is one or more octets and indicates the
  876.         identifier address within the selected class.  The length and
  877.         content depend on the value of the Class as follows:
  878.  
  879.         Class 0 - Null Class
  880.  
  881.              Maximum Length: 0
  882.  
  883.              Content:
  884.              This class is the default value if the option is not
  885.              present in a received Configure-Request.
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898. Sklower, Lloyd, McGregor & Carr                                [Page 16]
  899.  
  900. RFC 1717                     PPP Multilink                 November 1994
  901.  
  902.  
  903.         Class 1 - Locally Assigned Address
  904.  
  905.              Maximum Length: 20
  906.  
  907.              Content:
  908.  
  909.              This class is defined to permit a local assignment in the
  910.              case where use of one of the globally unique classes is not
  911.              possible.  Use of a device serial number is suggested.  The
  912.              use of this class is deprecated since uniqueness is not
  913.              guaranteed.
  914.  
  915.         Class 2 - Internet Protocol (IP) Address
  916.  
  917.              Fixed Length: 4
  918.  
  919.              Content:
  920.  
  921.              An address in this class contains an IP host address as
  922.              defined in [8].
  923.  
  924.         Class 3 - IEEE 802.1 Globally Assigned MAC Address
  925.  
  926.              Fixed Length: 6
  927.  
  928.              Content:
  929.  
  930.              An address in this class contains an IEEE 802.1 MAC address
  931.              in canonical (802.3) format [9].  The address MUST have the
  932.              global/local assignment bit clear and MUST have the
  933.              multicast/specific bit clear.  Locally assigned MAC
  934.              addresses should be represented using Class 1.
  935.  
  936.         Class 4 - PPP Magic-Number Block
  937.  
  938.              Maximum Length: 20
  939.  
  940.              Content:
  941.  
  942.              This is not an address but a block of 1 to 5 concatenated
  943.              32 bit PPP Magic-Numbers as defined in [2].  This class
  944.              provides for automatic generation of a value likely but not
  945.              guaranteed to be unique.  The same block MUST be used by an
  946.              endpoint continuously during any period in which at least
  947.              one link is in the LCP Open state.  The use of this class
  948.              is deprecated.
  949.  
  950.  
  951.  
  952.  
  953.  
  954. Sklower, Lloyd, McGregor & Carr                                [Page 17]
  955.  
  956. RFC 1717                     PPP Multilink                 November 1994
  957.  
  958.  
  959.              Note that PPP Magic-Numbers are used in [2] to detect
  960.              unexpected loopbacks of a link from an endpoint to itself.
  961.              There is a small probability that two distinct endpoints
  962.              will generate matching magic-numbers.  This probability is
  963.              geometrically reduced when the LCP negotiation is repeated
  964.              in search of the desired mismatch, if a peer can generate
  965.              uncorrelated magic-numbers.
  966.  
  967.              As used here, magic-numbers are used to determine if two
  968.              links are in fact from the same peer endpoint or from two
  969.              distinct endpoints.  The numbers always match when there is
  970.              one endpoint.  There is a small probability that the
  971.              numbers will match even if there are two endpoints.  To
  972.              achieve the same confidence that there is not a false match
  973.              as for LCP loopback detection, several uncorrelated magic-
  974.              numbers can be combined in one block.
  975.  
  976.         Class 5 - Public Switched Network Directory Number
  977.  
  978.              Maximum Length: 15
  979.  
  980.              Content:
  981.  
  982.              An address in this class contains an octet sequence as
  983.              defined by I.331 (E.164) representing an international
  984.              telephone directory number suitable for use to access the
  985.              endpoint via the public switched telephone network [10].
  986.  
  987. 6.  Closing Member links
  988.  
  989.    Member links may be terminated according to normal PPP LCP procedures
  990.    using LCP terminate-request and terminate-ack packets on that member
  991.    link.  Since it is assumed that member links usually do not reorder
  992.    packets, receipt of a terminate ack is sufficient to assume that any
  993.    multilink protocol packets ahead of it are at no special risk of
  994.    loss.
  995.  
  996.    Receipt of an LCP terminate-request on one link does not conclude the
  997.    procedure on the remaining links.
  998.  
  999.    So long as any member links in the bundle are active, the PPP state
  1000.    for the bundle persists as a separate entity.
  1001.  
  1002.    If the multilink procedure is used in conjunction with PPP reliable
  1003.    transmission, and a member link is not closed gracefully, the
  1004.    implementation should expect to receive packets which violate the
  1005.    increasing sequence number rule.
  1006.  
  1007.  
  1008.  
  1009.  
  1010. Sklower, Lloyd, McGregor & Carr                                [Page 18]
  1011.  
  1012. RFC 1717                     PPP Multilink                 November 1994
  1013.  
  1014.  
  1015. 7.  Interaction with Other Protocols
  1016.  
  1017.    In the common case, LCP, and the Authentication Control Protocol
  1018.    would be negotiated  over each member link.  The Network Protocols
  1019.    themselves and associated control exchanges would normally have been
  1020.    conducted once, on the bundle.
  1021.  
  1022.    In some instances it may be desirable for some Network Protocols to
  1023.    be exempted from sequencing requirements, and if the MRU sizes of the
  1024.    link did not cause fragmentation, those protocols could be sent
  1025.    directly over the member links.
  1026.  
  1027.    Although explicitly discouraged above, if there were several member
  1028.    links connecting two implementations, and independent sequencing of
  1029.    two protocol sets were desired, but blocking of one by the other was
  1030.    not, one could describe two multilink procedures by assigning
  1031.    multiple endpoint identifiers to a given system.  Each member link,
  1032.    however, would only belong to one bundle.  One could think of a
  1033.    physical router as housing two logically separate implementations,
  1034.    each of which is independently configured.
  1035.  
  1036.    A simpler solution would be to have one link refuse to join the
  1037.    bundle, by sending a Configure-Reject in response to the Multilink
  1038.    LCP option.
  1039.  
  1040. 8.  Security Considerations
  1041.  
  1042.    Operation of this protocol is no more and no less secure than
  1043.    operation of the PPP authentication protocols [3].  The reader is
  1044.    directed there for further discussion.
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066. Sklower, Lloyd, McGregor & Carr                                [Page 19]
  1067.  
  1068. RFC 1717                     PPP Multilink                 November 1994
  1069.  
  1070.  
  1071. 9.  References
  1072.  
  1073.    [1] Leifer, D., Sheldon, S., and B. Gorsline "A Subnetwork Control
  1074.        Protocol for ISDN Circuit-Switching", University of Michigan
  1075.        (unpublished), March 1991.
  1076.  
  1077.    [2] Simpson, W., Editor, "The Point-to-Point Protocol (PPP)", STD 51,
  1078.        RFC 1661, Daydreamer, July 1994.
  1079.  
  1080.    [3] Lloyd, B., and W. Simpson, "PPP Authentication Protocols", RFC
  1081.        1334, Lloyd Internetworking, Daydreamer, October 1992.
  1082.  
  1083.    [4] International Organisation for Standardization, "HDLC -
  1084.        Description of the X.25 LAPB-Compatible DTE Data Link
  1085.        Procedures", International Standard 7776, 1988
  1086.  
  1087.    [5] Rand, D., "The PPP Compression Control Protocol (CCP)", PPP
  1088.        Extensions Working Group, Work in Progress.
  1089.  
  1090.    [6] Rand, D., "PPP Reliable Transmission", PPP Extensions Working
  1091.        Group, Work in Progress.
  1092.  
  1093.    [7] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1700,
  1094.        USC/Information Sciences Institute, October 1994.
  1095.  
  1096.    [8] Postel, J., Editor, "Internet Protocol - DARPA Internet Program
  1097.        Protocol Specification", STD 5, RFC 791, USC/Information Sciences
  1098.        Institute, September 1981.
  1099.  
  1100.    [9] Institute of Electrical and Electronics Engineers, Inc., "IEEE
  1101.        Local and Metropolitan Area Networks: Overview and Architecture",
  1102.        IEEE Std. 802-1990, 1990.
  1103.  
  1104.   [10] The International Telegraph and Telephone Consultative Committee
  1105.        (CCITT), "Numbering Plan for the ISDN Area", Recommendation I.331
  1106.        (E.164), 1988.
  1107.  
  1108.   [11] Simpson, W., Editor, "PPP LCP Extensions", RFC 1570, Daydreamer,
  1109.        January 1994.
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122. Sklower, Lloyd, McGregor & Carr                                [Page 20]
  1123.  
  1124. RFC 1717                     PPP Multilink                 November 1994
  1125.  
  1126.  
  1127. 10.  Authors' Addresses
  1128.  
  1129.    Keith Sklower
  1130.    Computer Science Department
  1131.    384 Soda Hall, Mail Stop 1776
  1132.    University of California
  1133.    Berkeley, CA 94720-1776
  1134.  
  1135.    Phone:  (510) 642-9587
  1136.    EMail:  sklower@CS.Berkeley.EDU
  1137.  
  1138.  
  1139.    Brian Lloyd
  1140.    Lloyd Internetworking
  1141.    3031 Alhambra Drive
  1142.    Cameron Park, CA 95682
  1143.  
  1144.    Phone: (916) 676-1147
  1145.    EMail:  brian@lloyd.com
  1146.  
  1147.  
  1148.    Glenn McGregor
  1149.    Lloyd Internetworking
  1150.    3031 Alhambra Drive
  1151.    Cameron Park, CA 95682
  1152.  
  1153.    Phone: (916) 676-1147
  1154.    EMail: glenn@lloyd.com
  1155.  
  1156.  
  1157.    Dave Carr
  1158.    Newbridge Networks Corporation
  1159.    600 March Road
  1160.    P.O. Box 13600
  1161.    Kanata, Ontario,
  1162.    Canada, K2K 2E6
  1163.  
  1164.    Phone:  (613) 591-3600
  1165.    EMail:  dcarr@Newbridge.COM
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178. Sklower, Lloyd, McGregor & Carr                                [Page 21]
  1179.  
  1180.